Zend Framework
   HOME

TheInfoList



OR:

Laminas Project (formerly Zend Framework or ZF) is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
,
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
web application framework A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and ...
implemented in PHP 7 and licensed under the
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
. The framework is basically a collection of professional
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the
model–view–controller Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of infor ...
(MVC) in combination with Front Controller solution.Supaartagorn, C. (2011). PHP Framework for database management based on MVC pattern. ''International Journal of Computer Science & Information Technology (IJCSIT)'', ''3''(2), 251-258. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from
URL A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
, and controller functions in combination with the model and view to develop and create the final web page. On 17 April 2019 it was announced that the framework is transitioning into an open source project hosted by the
Linux Foundation The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. Additi ...
to be known as Laminas.


License

Laminas is licensed under the
Open Source Initiative The Open Source Initiative (OSI) is the steward of the Open Source Definition, the set of rules that define open source software. It is a California public-benefit nonprofit corporation,_with_501(c)(3).html" ;"title="110. - 6910./ref> is a type o ...
(OSI)-approved
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
. All new contributions are required to be accompanied with Developer Certificate of Origin affirmation. Zend Framework also licensed under New BSD License. For ZF1 all code contributors were required to sign a Contributor License Agreement (CLA) based on the
Apache Software Foundation The Apache Software Foundation (ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open source software projects. The ASF was formed from a group of developers of the A ...
’s CLA. The licensing and contribution policies were established to prevent intellectual property issues for
commercial Commercial may refer to: * a dose of advertising conveyed through media (such as - for example - radio or television) ** Radio advertisement ** Television advertisement * (adjective for:) commerce, a system of voluntary exchange of products and s ...
ZF users, according to Zend's Andi Gutmans. ZF2 and later is CLA free.


Components and versioning

Laminas Project follows
semantic versioning Software versioning is the process of assigning either unique ''version names'' or unique ''version numbers'' to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assig ...
. Framework components are versioned independently and released as separate
Composer A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music. Etymology and Defi ...
packages. Dependencies between framework components are declared as Composer dependencies using semantic versioning ranges. Prior to Zend Framework version 2.5 all components shared the same version. Starting with Zend Framework version 2.5, components were split into independently versioned packages and zendframework/zendframework converted into a Composer meta-package. Framework components introduced after the split started at version 1.0 while existing components continued from 2.5. New components were not added to the meta-package and meta-package itself was discontinued after 3.0.0 release. Zend Framework 3 was the last release before framework wide versioning was discontinued. In Zend Framework 3 major versions of individual components did not match framework version anymore and caused confusion. Some components such as zend-mvc and zend-servicemanager received matching major version release but other remained on version 2 while newly introduced zend-diactoros, zend-stratigility and zend-expressive were at major version 1. Laminas Project does not carry a single framework version. Components transitioned from Zend Framework continued with existing versions and had all past releases migrated from their counterparts. zendframework/zendframework meta-package does not have a counterpart in Laminas. Laminas includes following components:


Installation

Officially supported install method is via
Composer A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music. Etymology and Defi ...
package manager. Laminas provides meta-package that includes 61 component but recommended way is to install required framework components individually. Composer will resolve and install all additional dependencies. For instance, if you need MVC package, you can install with the following command: $ composer require zendframework/zend-mvc Full list of components is available in Zend Framework documentation.


Anatomy of the framework

Laminas follows configuration-over-convention approach and does not impose any particular application structure. Skeleton applications for zend-mvc and zend-expressive are available and provide everything necessary to run applications and to serve as a good starting point.


Sponsor and partners

Zend Technologies Zend, formerly Zend Technologies, is a Minneapolis, Minnesota-based software company. The company's products, which include Zend Studio, assist software developers with developing, deploying, and managing PHP-based web applications. The company wa ...
, co-founded by
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
core contributors
Andi Gutmans Andi (Andrei) Gutmans is an Israeli programmer and entrepreneur. Biography Andi Gutmans holds a bachelor’s degree in Computer Science from the Technion in Haifa. Gutmans holds four citizenships: Swiss, British, Israeli and American. Business ...
and
Zeev Suraski Zeev Suraski ( he, זאב סורסקי ) is an Israeli programmer, PHP developer and co-founder of Zend Technologies. A graduate of the Technion in Haifa, Israel, Suraski and Andi Gutmans created PHP 3 in 1997. In 1999 they wrote the Zend En ...
, was the original corporate sponsor of Zend Framework. Technology partners include IBM,
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
,
Adobe Systems Adobe Inc. ( ), originally called Adobe Systems Incorporated, is an American multinational computer software company incorporated in Delaware and headquartered in San Jose, California. It has historically specialized in software for the crea ...
, and StrikeIron.


Features

Laminas features include: * All components are fully object-oriented PHP 5 and are E_STRICT compliant, which helps in the development of building tests and writing
codes In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communication ...
in a bug-free and crash-proof application manner. * Use-at-will architecture with loosely coupled components and minimal interdependencies * Extensible
MVC MVC may refer to: Science and technology * Maximum-value composite procedure, an imaging procedure * Multivariable calculus, a concept in mathematics * Multivariable control, a concept in process engineering * Mechanical vapor compression, a desal ...
implementation supporting layouts and PHP-based templates by default * Support for multiple database systems and vendors, including
MariaDB MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ori ...
,
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database o ...
,
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
,
IBM Db2 Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON a ...
,
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
,
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
,
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the most ...
, and
Informix Dynamic Server IBM Informix is a product family within IBM's Information Management division that is centered on several relational database management system (RDBMS) offerings. The Informix products were originally developed by Informix Corporation, whose I ...
* Email composition and delivery, retrieval via
mbox Mbox is a generic term for a family of related file formats used for holding collections of email messages. It was first implemented in Research Unix, Fifth Edition Unix. All messages in an mbox mailbox are concatenated and stored as plain text ...
,
Maildir The Maildir e-mail format is a common way of storing email messages in which each message is stored in a separate file with a unique name, and each mail folder is a file system directory. The local file system handles file locking as messages are ...
,
POP3 In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. POP version 3 (POP3) is the version in common use, and along with IMAP the most common p ...
and
IMAP4 In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by . IMAP was designed with the goal of per ...
* Flexible caching sub-system with support for many types of backends, such as
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
or a
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
. * With the help of
remote procedure call In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (l ...
(RPC) and REST( Representational State Transfer) services, Zend Apigility helps developers to create APIs, authentication of APIs, documentation of APIs, Easy Modification


Development of applications

Laminas applications can run on any PHP stack that fulfills the technical requirements. Zend Technologies provides a PHP stack,
Zend Server {{Infobox software , title = Zend Server , name = Zend Server , logo = , logo caption = Zend Server , screenshot = , caption = , collapsible = , author = Zend Technologies , developer = Perforce , released = 2009 , discontinued = , ...
(or Zend Server Community Edition), which is advertised to be optimized for running Laminas applications. Zend Server includes Zend Framework in its installers, along with
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
and all required extensions. According to Zend Technologies, Zend Server provides improved performance for PHP and especially Zend Framework applications through opcode acceleration and several caching capabilities, and includes application monitoring and diagnostics facilities.
Zend Studio Zend Studio is a commercial, proprietary integrated development environment (IDE) for PHP developed by Zend Technologies, based on the PHP Development Tools (PDT) plugin for the Eclipse platform (the PDT project is led by Zend). Zend Studio is t ...
is an IDE that includes features specifically to integrate with Zend Framework. It provides an MVC view, MVC code generation based on Zend_Tool (a component of the Zend Framework), a code formatter, code completion, parameter assist, and more. Zend Studio is not free software, whereas the Zend Framework and Zend Server Community Edition are free. Zend Server is compatible with common debugging tools such as
Xdebug Xdebug is a PHP extension which provides debugging and profiling capabilities. It uses the DBGp debugging protocol. The debug information that Xdebug can provide includes the following: * stack and function traces in error messages with: :*ful ...
. Other developers may want to use a different PHP stack and another IDE such as
Eclipse PDT PHP Development Tools (PDT) is a language IDE plugin for the Eclipse platform and the open-source project that develops it. The project intends to encompass all tools necessary to develop PHP based software. It uses the existing Eclipse Web Too ...
which works well together with Zend Server. A pre configured, free version of
Eclipse PDT PHP Development Tools (PDT) is a language IDE plugin for the Eclipse platform and the open-source project that develops it. The project intends to encompass all tools necessary to develop PHP based software. It uses the existing Eclipse Web Too ...
with Zend Debug is available on the Zend web site.


Code, documentation, and test standards

Code contributions to Laminas are subject to rigorous code,
documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
, and test standards. All code must meet project coding standards and
unit tests In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&mda ...
must reach 80%
code coverage In computer science, test coverage is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high test coverage has more of its source code executed during testing, ...
before the corresponding code may be moved to the release branch.


Simple cloud API

On September 22, 2009,
Zend Technologies Zend, formerly Zend Technologies, is a Minneapolis, Minnesota-based software company. The company's products, which include Zend Studio, assist software developers with developing, deploying, and managing PHP-based web applications. The company wa ...
announced that it would be working with technology partners including
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, IBM,
Rackspace Rackspace Technology, Inc. is an American cloud computing company based in Windcrest, Texas, an inner suburb of San Antonio, Texas. The company also has offices in Blacksburg, Virginia, and Austin, Texas, as well as in Australia, Canada, United ...
,
Nirvanix Nirvanix is an American-based provider of business phone systems, VOIP, VoIP services, hosted Private Branch Exchange, PBX, SIP trunking, SIP Trunks, and cloud storage services headquartered in San Diego, California, United States. The company of ...
, and GoGrid along with the Zend Framework community to develop a common API to
cloud In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may co ...
application services called the
Simple Cloud API The Simple Cloud API is an API (Application Programming Interface). It enables users to access cloud application services written in the PHP programming language across different cloud computing platforms. It was launched in 2009 by Zend Technolo ...
. This project is part of Zend Framework and will be hosted on the Zend Framework website, but a separate site called simplecloud.org has been launched to discuss and download the most current versions of the API. The Simple Cloud API and several Cloud Services are included in Zend Framework. The adapters to popular cloud services have reached production quality.


Current development

Zend Framework 3.0 was released on June 28, 2016. It includes new components like a JSON RPC server, a XML to JSON converter, PSR-7 functionality, and compatibility with PHP 7. Zend Framework 3.0 runs up to 4 times faster than Zend Framework 2, and the packages have been decoupled to allow for greater reuse. The contributors of Zend Framework are actively encouraging the use of Zend Framework version 3.x. The stated end of life for Zend Framework 1 is 2016-09-28, and for Zend Framework 2 is 2018-03-31. The first development release of Zend Framework 2.0 was released on August 6, 2010. Changes made in this release were the removal of require_once statements, migration to PHP 5.3 namespaces, a refactored test suite, a rewritten Zend\Session, and the addition of the new Zend\Stdlib. The second development release was on November 3, 2010. The first stable release of Zend Framework 2.0 was released 5 September 2012.


See also

*
Comparison of web frameworks Two comparisons of web frameworks are available: * Comparison of JavaScript-based web frameworks (front-end) * Comparison of server-side web frameworks This is a comparison of notable web frameworks, software used to build and deploy web applicat ...
*
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
*
Zend Server {{Infobox software , title = Zend Server , name = Zend Server , logo = , logo caption = Zend Server , screenshot = , caption = , collapsible = , author = Zend Technologies , developer = Perforce , released = 2009 , discontinued = , ...
*
Zend Studio Zend Studio is a commercial, proprietary integrated development environment (IDE) for PHP developed by Zend Technologies, based on the PHP Development Tools (PDT) plugin for the Eclipse platform (the PDT project is led by Zend). Zend Studio is t ...


References


External links

*
Zend Framework
{{Authority control Free computer libraries Free content management systems PHP frameworks Software using the BSD license Web frameworks